/**
 * com.cnhis.his.customer.bo.SysusersBo.java
 */
package com.mbmed.doctor.login.bo;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.mbmed.doctor.commons.mapper.ModelVo;
import com.mbmed.doctor.commons.utils.Page;
import com.mbmed.doctor.commons.utils.StaticKeys;
import com.mbmed.doctor.commons.vo.exception.BaseException;
import com.mbmed.doctor.login.dao.SysusersDao;
import com.mbmed.doctor.login.mapper.Sysusers;



/**
 * @file  SysusersBo.java
 * @author 刘武
 * @version 0.1
 * @todo	Sysusers业务操作接口
 * Copyright(C), 2013-2014
 *		 Shenzhen Coordinates Software Development Co., Ltd.
 * History
 *   	1. Date: 2014-09-26 03:39:55
 *      	Author: 刘武
 *      	Modification: this file was created
 *   	2. ...
 */
@Service
public class SysusersBo {
	@Resource
	private SysusersDao sysusersDao;
	

    /**
	 * @param sysusersDao the sysusersDao to set
	 */
	public void setSysusersDao(SysusersDao sysusersDao) {
		this.sysusersDao = sysusersDao;
	}


	/**
     * 配置文件中编号：(1)
	 * 查找所有数据库记录
     * @return type : List 返回查询操作所有符合条件的记录的VO对象集合，操作失败返回null
     */
	@SuppressWarnings({ "rawtypes" })
    public List getAll() throws Exception {
		return sysusersDao.selectAll();
	}
	
    /**
     * 配置文件中编号：(2)
     * @param valueOne 需要进行查询的值。
     * @param valueTwo 需要进行查询的值。
     * @param valueThree 需要进行查询的值。
     * @return type : List 返回查询操作所有符合条件的记录的VO对象集合，操作失败返回null
     * @throws Exception
     */
	@SuppressWarnings({ "rawtypes" })
    public List getByParamMap(Map paramMap) throws Exception{
		 return sysusersDao.selectByParamMap(paramMap);
	}
	
	
	
	
	/**
     * 配置文件中编号：(3)
     * 查找符合条件的所有数据库记录
     * @param vo 与数据库中记录对应的值对象
     * @return type : List 返回查询操作所有符合条件的记录的VO对象集合，操作失败返回null
     * @throws Exception
     */
	@SuppressWarnings({ "rawtypes" })
    public List get(Sysusers vo) throws Exception{
		if(vo == null) return null;
        return sysusersDao.selectByVo(vo);
	}
	
    /**
     * 配置文件中编号：(3-2)
     * 分页查找
     * @param condition 与数据库中记录对应的值对象
     * @return type : Page 返回满足条件的记录集，操作失败返回null
     * @throws Exception
     */
	@SuppressWarnings("rawtypes")
	public Page getPage(Map condition) throws Exception{
		if(condition == null) return null;
        return sysusersDao.selectForPage(condition);
	}
	
	@SuppressWarnings({ "rawtypes" })
    public Page getPageByParamMap(Map condition, int currPage,	int pageSize) throws Exception{
		if (condition == null)
			return null;
		return sysusersDao.queryByParams(condition, currPage, pageSize);
	}
	
    /**
     * 配置文件中编号：(3-3)
     * 查找符合条件的所有数据库记录
     * @param pkid 与数据库中主键对应的值
     * @return type : RpDir 返回查询操作所有符合条件的记录的VO对象，操作失败返回null
     * @throws Exception
     */
	public Sysusers get(String pkid) throws Exception{
		if(pkid==null) return null;
     	return sysusersDao.selectByPk(pkid);
	}
	
	
	
	 /**
     * 配置文件中编号：(3-4)
     * 根据登陆编号查询登陆者信息
     * @param code 登陆者code
     * @return type : RpDir 返回查询操作所有符合条件的记录的VO对象，操作失败返回null
     * @throws Exception
     */
	public Sysusers getByCode(String code) throws Exception{
		if(code==null) return null;
     	return sysusersDao.selectByCode(code);
	}
	
	
	
	/**
     * 配置文件中编号：(3-5)
     * 身份验证
     * @param code 登陆者code
     * @return type : RpDir 返回查询操作所有符合条件的记录的VO对象，操作失败返回null
     * @throws Exception
     */
	public Sysusers getCode(String code) throws Exception{
		if(code==null) return null;
     	return sysusersDao.selectCode(code);
	}
	
	
	/**
     * 配置文件中编号：(4)
     * 向数据库中插入一条记录
     * @param vo 与数据库中记录对应的值对象
     * @return type : RpDir 返回插入操作是否成功
     * @throws Exception
     */
    public Sysusers save(Sysusers vo) throws Exception{
    	if(vo == null) return null;		
		if(vo.getId()!=null) {
			return sysusersDao.updateByVo(vo);
		} else {
			//vo.setId(sysusersDao.getPKValue());
			return sysusersDao.insertByVo(vo);
		}
    }
    
    
    /**
     * 配置文件中编号：(5-3)
     * 更新登陆信息
     * @param vo 与数据库中记录对应的值对象
     * @return type : RpDir 返回插入操作是否成功
     * @throws Exception
     */
    public Map save(Map map) throws Exception{
		return sysusersDao.updateByCode(map);
    }
    
    
    /**
     * 配置文件中编号：(5)
     * 删除符合条件的所有数据库记录
     * @param pkid 与数据库中主键对应的值
     * @return type : boolean 返回删除操做是否成功，操作失败返回false
     */
    public boolean remove(String pkid) throws Exception{
    	if(pkid == null) return false;
    	return sysusersDao.deleteByPk(pkid);
    }
    

    
    /**
     * 配置文件中编号：(6)
     * 删除数据库中与传入的值对象对应的记录
     * @param vo 与数据库中记录对应的值对象
     * @return type : boolean 返回删除操作是否成功
     * @throws Exception
     */
    public boolean remove(Sysusers vo) throws Exception{
    	if(vo == null) return false;
     	return sysusersDao.deleteByVo(vo);
    }
    
    
    public String GetVersion() throws Exception{
		return sysusersDao.GetVersion();
	}
	
	public String updateVersion(String version1) throws Exception{
		return sysusersDao.updateVersion(version1);
	}


	/**
	 * 获取版本信息
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("rawtypes")
	public ModelVo queryMobileVersion(Map param) throws Exception{
		ModelVo mv = new ModelVo();
		try{
			List list = sysusersDao.queryMobileVersion(param);
			mv.setList(list);
		}catch(Exception e){
			e.printStackTrace();
			throw BaseException.getDetailMessage(e);
		}
		mv.setResult(StaticKeys.OH_SUCCESS);
		return mv;
	}


	/**
     * 用户登录验证checkSysUser
     * @param loginName
     * @param loginPwd
     * @return
     */
	@SuppressWarnings("rawtypes")
	public boolean checkSysUser(String loginName, String loginPwd) throws Exception{
		boolean flag = false;
		Map map = sysusersDao.checkSysUser(loginName,loginPwd);
		if(map!=null){
			flag=true;
		}else{
			flag=false;
		}
		return flag;
	}

}
